Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - [RISOLTO] Problemi con classe Vector
Forum - Java - [RISOLTO] Problemi con classe Vector

Avatar
Majesticeagle (Normal User)
Newbie


Messaggi: 19
Iscritto: 13/02/2012

Segnala al moderatore
Postato alle 13:56
Martedì, 15/07/2014
Salve a tutti, sto provando a fare un programma che mi gestisce una rubrica. Ho una classe Rubrica che ha come attributo un Vector che contiene diversi oggetti di tipo Voce (un'altra classe creata da me). Quando aggiungo una nuova voce al Vector salvo anche i dati su un file con questo metodo:
Codice sorgente - presumibilmente Java

  1. public void salvaDati()
  2.         {
  3.                 Voce e;
  4.                
  5.                 try
  6.                 {
  7.                         FileOutputStream f = new FileOutputStream(new File("C:/elenco.dat"));
  8.                         ObjectOutputStream fout = new ObjectOutputStream(f);
  9.                         for(int i=0;i<rubrica.size();i++)
  10.                         {
  11.                                 e = (Voce) rubrica.elementAt(i);
  12.                                 fout.writeObject(e);
  13.                         }
  14.                         f.close();
  15.                 }catch(Exception e2)
  16.                 {
  17.                         System.out.println("ERRORE SCRITTURA FILE");
  18.                 }
  19.         }


All'apertura del programma carico i dati salvati precedentemente sul file con questo metodo:
Codice sorgente - presumibilmente Java

  1. public void leggiDati()
  2.         {
  3.                 try
  4.                 {
  5.                         FileInputStream f = new FileInputStream(new File("C:/elenco.dat"));
  6.                         ObjectInputStream fin = new ObjectInputStream(f);
  7.                         Voce e;
  8.                         while(true)             //Finchè non finisce il file
  9.                         {
  10.                                 try
  11.                                 {
  12.                                         e = (Voce) fin.readObject();
  13.                                         rubrica.addElement(e);
  14.                                 }catch(EOFException e2)
  15.                                 {
  16.                                         System.out.println("FINE FILE");
  17.                                         break;          //Alla fine del file esco dal ciclo
  18.                                 }
  19.                         }
  20.                         f.close();
  21.                 }catch(Exception e)
  22.                 {
  23.                         System.out.println("ERRORE IN LETTURA DEL FILE");
  24.                 }
  25.         }


Una volta avviato il programma e caricati i dati dal file, aggiungo un'altra voce al Vector e in pratica è come se soprascrivesse la voce precedente!!!:d Infatti poi salvo i dati sul file e quando li ricarico sul file è presente soltato l'ultima voce inserita e non anche quella che avevo inserito in un'altra esecuzione e quindi salvato sul file!!!
Aiutatemiiii! Non riesco a capire il problema dov'è!:_doubt:

Dopo diverse prove ho capito che il metodo che uso dall'esterno per aggiungere una voce al Vector funziona male, ossia aggiunge la voce ma non va mai avanti con le posizioni ma sovrascrive sempre la prima!!! Questo è il metodo:
Codice sorgente - presumibilmente Java

  1. public void aggiungiVoce(Voce v)
  2.         {
  3.                 rubrica.addElement(v);          //Cercare soluzione a questo metodo
  4.                 System.out.println("DOPO L'AGGIUNTA DELLA VOCE: " + getSize());
  5.         }


Ultima modifica effettuata da Majesticeagle il 15/07/2014 alle 15:15
PM Quote
Avatar
Majesticeagle (Normal User)
Newbie


Messaggi: 19
Iscritto: 13/02/2012

Segnala al moderatore
Postato alle 15:17
Martedì, 15/07/2014
Ragazzi ho risolto da solo,
mi sono accorto soltanto dopo che creavo oggetti diversi, quindi mi è bastato fissare un attributo statico in modo tale che gli altri oggetti avessero questo oggetto tutti uguali.

Scusatemi ancora:_doubt::hail:

PM Quote